package NXTExplorer;

import lejos.nxt.TouchSensor;
import lejos.nxt.UltrasonicSensor;
import lejos.robotics.localization.OdometryPoseProvider;
import lejos.robotics.navigation.DifferentialPilot;
import data.IDataQueue;

/**
 * Java bean containing data to be passed around easily.
 * 
 * @author Didzis Petkus, Danny Johansen, Liviu Berheci
 * 
 */
public class SensorParameter {
	private DifferentialPilot pilot;
	private OdometryPoseProvider poseProvider;
	private IDataQueue queue;
	private UltrasonicSensor leftUssr;
	private UltrasonicSensor rightUssr;
	private UltrasonicSensor centerUssr;
	private TouchSensor ts;

	/**
	 * Creates Java bean with given data.
	 * 
	 * @param pilot
	 *            - DifferentialPilot object.
	 * @param poseProvider
	 *            - OdometryPoseProvider object.
	 * @param queue
	 *            - IDataQueue object
	 * @param ts
	 *            - TouchSensor object
	 * @param leftUssr
	 *            - Left UltrasonicSensor object
	 * @param rightUssr
	 *            - Right UltrasonicSensor object
	 * @param centerUssr
	 *            - Middle UltrasonicSensor object
	 */
	public SensorParameter(DifferentialPilot pilot,
			OdometryPoseProvider poseProvider, IDataQueue queue,
			TouchSensor ts, UltrasonicSensor leftUssr,
			UltrasonicSensor rightUssr, UltrasonicSensor centerUssr) {
		this.pilot = pilot;
		this.poseProvider = poseProvider;
		this.queue = queue;
		this.leftUssr = leftUssr;
		this.rightUssr = rightUssr;
		this.centerUssr = centerUssr;
		this.ts = ts;
	}

	/**
	 * Returns DifferentialPilot object.
	 * 
	 * @return DifferentialPilot object
	 */
	public DifferentialPilot getPilot() {
		return pilot;
	}

	/**
	 * Returns OdometryPoseProvider object.
	 * @return OdometryPoseProvider object.
	 */
	public OdometryPoseProvider getPoseProvider() {
		return poseProvider;
	}

	/**
	 * Returns IDataQueue object.
	 * @return IDataQueue object
	 */
	public IDataQueue getQueue() {
		return queue;
	}

	/**
	 * Returns left UltrasonicSensor object.
	 * @return - Left UltrasonicSensor object.
	 */
	public UltrasonicSensor getLeftUssr() {
		return leftUssr;
	}

	/**
	 * Returns right UltrasonicSensor object.
	 * @return - Right UltrasonicSensor object.
	 */
	public UltrasonicSensor getRightUssr() {
		return rightUssr;
	}

	/**
	 * Returns middle UltrasonicSensor object.
	 * @return - Middle UltrasonicSensor object.
	 */
	public UltrasonicSensor getCenterUssr() {
		return centerUssr;
	}

	/**
	 * Returns TouchSensor object
	 * @return  TouchSensor object
	 */
	public TouchSensor getTouchSensor() {
		return ts;
	}
}